#include <stdio.h>
#include <string.h>
long long hashL[2000010];
int a,b,c,d;
int x1,x2,x3,x4;
int
long long temp;
int hash()
{
	long long ans=0;
	if((a>0&&b>0&&c>0&&d>0)||(a<0&&b<0&&c<0&&d<0))
	{
		return 0;
	}
	else
	{
		for(x1=-100;x1<=100&&x1!=0;x1++)
		{
			for(x2=-100;x2<=100&&x2!=0;x2++)
			{
				temp = -(a*x1*x1+b*x2*x2)+1e6;
				hashL[temp]++;
			}
		}
		for(x3=-100;x3<=100&&x3!=0;x3++)
		{
			for(x4=-100;x4<=100&&x4!=0;x4++)
			{
				temp = c*x3*x3+d*x4*x4+1e6;
				ans = ans + hashL[temp];
			}
		}
	}
	return ans*4;
}
int main()
{
	while(scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF)
	{
		memset(hashL,0,sizeof(hashL));
		long long ans = hash();
		printf("%d\n",ans);
	}
} 
